<?php
/**
 * --------------------------------------------------------------------
 * MCore精简框架
 * 作者：阿枫，QQ：52037872，Email：support@mdeve.com
 * --------------------------------------------------------------------
 *
 * SVN revision information:
 * @version $Revision: 1 $:
 * @author  $Author: zy $:
 * @date      $Date: 2017-06-06 09:18:48 +0800 (Tue, 06 Jun 2017) $:
 */

/*************************************************************************************************
 * 系统入口程序，使用MCore引用此文件作为系统初始
 **************************************************************************************************/
error_reporting(E_ALL);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (version_compare(PHP_VERSION,'7.0.0','<'))	die("Must PHP 7.0 or later!");
if(function_exists('date_default_timezone_set')){
    date_default_timezone_set("Asia/Chongqing");//该函数为PHP5.1内置,这里设置为北京/香港时区+8
}
mb_internal_encoding("utf-8");
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 解决表单出错返回重填的时候以前填写的东西全部消失
session_cache_limiter("private, must-revalidate");
session_cache_expire(30);
session_start();		// 打开 session 进程
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 打开系统缓存
ob_start('ob_gzhandler');		// 开启GZIP
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// //  版本信息
define('_VERSION', '_mcore_v2');
//记录开始运行时间
define('_START_TIME', microtime(true));
define('_START_MEM', memory_get_usage());
// 记录运行环境
define('IS_WIN', strpos(PHP_OS, 'WIN') !== false);
define('IS_CLI', PHP_SAPI == 'cli' ? true : false);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 定义一些常量

// 是否开启系统调试模式，调试模式下不会缓存
if(!defined('_DEBUG')) define('_DEBUG', false);
// 是否开启系统trace信息，开启后会在页面最下面显示文件trace信息
if(!defined('_TRACE')) define('_TRACE', false);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
define('CORE_PATH', dirname(__FILE__));
// 加载基础类
require CORE_PATH . "/function/base.func.php";
require CORE_PATH . '/class/base.class.php';
require CORE_PATH . "/class/encrypt.class.php";
$_M = new __basic_lib();

// 加载文件配置
if(!file_exists(dirname(__FILE__). '/../config.inc.php')) exit("Can't find config.inc.php");
$_M->cfg = require dirname(__FILE__). '/../config.inc.php';
if(isset($_M->cfg["DEFAULT_DB"]) && $_M->cfg["DEFAULT_DB"] > -1 && !defined('DEFAULT_DB')) define('DEFAULT_DB', $_M->cfg["DEFAULT_DB"]);
$_M->encrypt = new _EncryptClass();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
define('DATA_PATH', $_M->cfg["DATA_PATH"]);
define('MODULE_PATH', $_M->cfg["MODULE_PATH"]);
define("MANAGE_PATH", $_M->cfg["MANAGE_PATH"]);
define("UPLOAD_PATH", $_M->cfg["UPLOAD_PATH"]);

// 检查运行目录，如果不存在则自动建立
if(!is_dir(DATA_PATH)) mkdir(DATA_PATH);  // 缓存目录
if(!is_dir(DATA_PATH."/tpl")) mkdir(DATA_PATH."/tpl");  // 模板缓存目录
if(!is_dir(DATA_PATH."/runtime")) mkdir(DATA_PATH."/runtime");  // 系统运行缓存目录
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// 插件相关内容
if($_M->cfg["module_enable"]) {
    require CORE_PATH . "/function/module.func.php";
    require CORE_PATH . "/class/drivers/abstract_module.php";
    require CORE_PATH . "/class/module.class.php";
    $_M->module = new _ModuleClass();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////